Vytvoreni db z programu
Otázka od: Kalhous
8. 11. 2004 8:19
D7,InterBase/FireBird
Muzete mi nekdo poradit co pouzit kdyz chci vytvorit novou databazi primo z
programu a/nebo upgradovat strukturu stavajici pri zmene verze programu? Cili
spustit kompletni vytvareci skript. Muzu sice z programu spustit iSQL a
podstrcit mu skript jako vstup ale to se mi moc nelibi.
Ostatne jsem u iSQL narazil na zahadu - i kdyz je nastaveno SET NAMES WIN1250,
v CREATE TABLE vyhazuje v definici sloupcu COLLATE PXW_CSY jako nepouzitelne
pro tuto znakovou sadu. A nejvetsi zahada je pro mne v tom, ze ne u vsech
znakovych atributu - u nekterych to projde, u jinych ne. Stejny skript treba
pres IBConsole projde bez problemu.
Z.Kalhous
ToWare s.r.o.
Odpovedá: Milan Tomes
8. 11. 2004 9:21
Set names je prikaz pro konzoli, ktery urcuje znakovou sadu pro pripojeni
(je tedy nutno jej volat pred pripojenim k databazi) a COLLATE je prikaz pro
SQL server, ktery urcuje trideni. COLLATE je zavisly na znakove sade pouzite
pri zakladani databaze.
Takze pokud chces aby Ti to fungovalo, tak musis udelat nasledujici:
1. SET NAMES WIN1250;
2. CONNECT .....;
nebo
2. CREATE DATABASE ... DEFAULT CHARACTER SET WIN1250;
3. CREATE TABLE AAA (
TEXT VARCHAR(2000) COLLATE PXW_CSY
);
Z programu nemusis volat Set names, protoze to vlastne nastavis v
parametrech pripojeni k databazi (viz lc_ctype=WIN1250)
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Kalhous
> Sent: Monday, November 08, 2004 8:19 AM
>
> Muzete mi nekdo poradit co pouzit kdyz chci vytvorit novou
> databazi primo z programu a/nebo upgradovat strukturu stavajici
> pri zmene verze programu? Cili spustit kompletni vytvareci
> skript. Muzu sice z programu spustit iSQL a podstrcit mu skript
> jako vstup ale to se mi moc nelibi.
> Ostatne jsem u iSQL narazil na zahadu - i kdyz je nastaveno SET
> NAMES WIN1250, v CREATE TABLE vyhazuje v definici sloupcu COLLATE
> PXW_CSY jako nepouzitelne pro tuto znakovou sadu. A nejvetsi
> zahada je pro mne v tom, ze ne u vsech znakovych atributu - u
> nekterych to projde, u jinych ne. Stejny skript treba pres
> IBConsole projde bez problemu.